import json, pathlib
from openai import OpenAI

file_path = pathlib.Path(__file__).parent.parent / 'semgrep_results.json'


def code_analysis():
    if file_path.exists():
        with open(file_path, 'r', encoding='utf-8') as f:
            json_data = json.load(f)
            prompt = f"""你是一个资深测试架构师。请根据以下静态代码分析结果，生成一份测试影响评估报告,只输出结果，不需要思考过程。

            代码变更概述：本次提交可能存在的问题如下

            分析数据（JSON）：
            {json_data}  

            请输出：
            1.  **核心变更点**：用一句话总结。
            2.  **直接受影响模块**：列出文件路径。
            3.  **间接可能受影响模块**：根据代码结构推测。
            4.  **测试建议**：指出需要重点测试的功能模块和测试类型（如：回归测试、集成测试、性能测试）。
            5.  **风险等级**：高/中/低，并说明理由。"""
            client = OpenAI(
                # 若没有配置环境变量，请用百炼API Key将下行替换为：api_key="sk-xxx",
                api_key='sk-8dcd9ec46bbe42f3947c71d27a21774d',
                base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
            )
            completion = client.chat.completions.create(
                # 模型列表：https://help.aliyun.com/zh/model-studio/getting-started/models
                model="qwen3-coder-flash",
                messages=[
                    {"role": "system", "content": "You are a helpful assistant."},
                    {"role": "user", "content": f"{prompt}"},
                ],
                # Qwen3模型通过enable_thinking参数控制思考过程（开源版默认True，商业版默认False）
                # 使用Qwen3开源版模型时，若未启用流式输出，请将下行取消注释，否则会报错
                # extra_body={"enable_thinking": False},
            )
            res = completion.model_dump()['choices'][0]['message']['content']
            return res
    else:
        json_data = None


if __name__ == '__main__':
    print(code_analysis())
